// 导入封装好的axios实例
import request from "@/utils/request"

/**
 * 获取分类树形结构数据
 * @param {number} id - 根分类ID，默认为0（表示顶级分类）
 * @returns {Promise} - 返回Promise对象，包含接口响应数据
 */
export const getCategoryTreeAPI = (id = 0) => {
    return request({
        url: `/pcate/list/${id}`, // 请求地址，通过URL路径传递分类ID
        method: 'get' // GET请求（无需data参数，GET参数通常在url中传递）
    })
}

/**
 * 根据当前分类 ID（pcatid）获取对应的分类树（后端返回 data 为单个节点及其 children）
 * @param {number|string} pcatid - 商品所属分类 ID（pcatid）
 * @returns {Promise} - 返回Promise对象，包含接口响应数据（后端返回结构示例见需求）
 */
export const getCategoryTreeByPcatid = (pcatid) => {
    return request({
        url: `/pcate/parent/${pcatid}`,
        method: 'get'
    })
}

/**
 * 根据分类ID获取该分类及其所有子分类下的商品
 * @param {number} categoryId - 分类ID
 * @returns {Promise} 返回商品列表数据
 */
export const getProductsByCategoryIdAndChildren = (categoryId) => {
  // 检查分类ID是否为空
  if (categoryId === null || categoryId === undefined) {
    return Promise.reject(new Error('分类ID不能为空'))
  }

  // 发送GET请求获取分类及其子分类下的所有商品
  return request({
    method: 'GET',
    url: `/pcate/products/all/${categoryId}`
  }).catch(error => {
    return Promise.reject(new Error('获取商品列表失败: ' + error.message))
  })
}